package com.bawei.lookfor2204a.model

import io.reactivex.Observable
import okhttp3.MultipartBody
import retrofit2.http.Body
import retrofit2.http.GET
import retrofit2.http.Multipart
import retrofit2.http.POST
import retrofit2.http.Part
import retrofit2.http.Query

/**
 * 作者：赵亮
 * 时间：2024/10/15 17:10
 * 功能：接口
 */
interface ApiService {

    /**
     * 查询直播列表
     */
    @GET("live-platform/findLiveList")
    fun findLiveList(
        @Query("liveType") liveType: Int,
        @Query("page") page: Int,
        @Query("size") size: Int
    ): Observable<FindLiveListBean>

    /**
     * 登录接口
     */
    @POST("live-user/v1/login")
    fun login(@Body map: Map<String, String>): Observable<LoginBean>

    /**
     * 申请开启直播（主播）
     * 上传文件需要的注解
     * @Part part: MultipartBody.Part   封面
     * @Multipart
     */
    @Multipart
    @POST("live-platform/verify/openLive")
    fun openLive(
        @Query("liveType") liveType:Int,
        @Query("liveTitle") liveTitle:String,
        @Query("longitude") longitude:String,
        @Query("latitude") latitude:String,
        @Part part: MultipartBody.Part
    ): Observable<OpenLiveBean>

    /**
     * 观看直播
     */
    @GET("live-platform/watchLive")
    fun watchLive(
        @Query("liveId") liveId:Int
    ):Observable<WatchLiveBean>

    /**
     * 查询所有礼物
     */
    @GET("live-platform/findAllGift")
    fun findAllGift():Observable<FindAllGiftBean>

    /**
     * 校验用户是否实名认证状态
     */
    @GET("live-user/verify/checkVerified")
    fun checkVerified():Observable<CheckVerifiedBean>

    /**
     * 实名认证
     */
    @POST("live-user/verify/realNameAuthentication")
    fun realNameAuthentication(
        @Query("actualName") actualName:String,
        @Query("sex") sex:Int,
        @Query("birthday") birthday:String,
        @Query("address") address:String,
        @Query("idNumber") idNumber:String,
        @Query("office") office:String,
        @Query("expireDate") expireDate:String,
    ):Observable<RealNameAuthenticationBean>
}